/**
 * 本地存储工具函数
 */

/**
 * 存储数据
 */
export function setStorage(key: string, value: any): void {
  try {
    const data = JSON.stringify(value)
    localStorage.setItem(key, data)
  } catch (error) {
    console.error('setStorage error:', error)
  }
}

/**
 * 获取数据
 */
export function getStorage<T = any>(key: string): T | null {
  try {
    const data = localStorage.getItem(key)
    return data ? JSON.parse(data) : null
  } catch (error) {
    console.error('getStorage error:', error)
    return null
  }
}

/**
 * 移除数据
 */
export function removeStorage(key: string): void {
  localStorage.removeItem(key)
}

/**
 * 清空所有数据
 */
export function clearStorage(): void {
  localStorage.clear()
}

/**
 * 存储会话数据
 */
export function setSessionStorage(key: string, value: any): void {
  try {
    const data = JSON.stringify(value)
    sessionStorage.setItem(key, data)
  } catch (error) {
    console.error('setSessionStorage error:', error)
  }
}

/**
 * 获取会话数据
 */
export function getSessionStorage<T = any>(key: string): T | null {
  try {
    const data = sessionStorage.getItem(key)
    return data ? JSON.parse(data) : null
  } catch (error) {
    console.error('getSessionStorage error:', error)
    return null
  }
}

/**
 * 移除会话数据
 */
export function removeSessionStorage(key: string): void {
  sessionStorage.removeItem(key)
}

/**
 * 清空所有会话数据
 */
export function clearSessionStorage(): void {
  sessionStorage.clear()
}
